package com.imm.logica;

import java.sql.SQLException;

import javax.xml.datatype.DatatypeConfigurationException;


import com.imm.dominio.DataAnulado;
import com.imm.dominio.DataVenta;
import com.imm.dominio.Venta;

public class AdminVentaImp implements IAdminVenta {
	
	private AdminVentaImp() {}
	
	
	private static AdminVentaImp instancia = new AdminVentaImp();  
	 
	public static AdminVentaImp getInstance() {  
		  return instancia;  
		 }  	

	public DataVenta IngresarVenta(DataVenta dataventa) {		
		
		Venta venta = DataVenta2Venta(dataventa);
		DataVenta retornofinal = Venta2DataVenta(venta);		
		if (VerificarDatosVentas(venta)) {			
			Venta retornoparcial;
			try {
				retornoparcial = IAdminIMMCobranza.getIPersistencia().AltaVenta(venta);
				 retornofinal.setId(retornoparcial.getId());
					retornofinal.setError(0); // POR AHORA SIN ERRORES
			      retornofinal.setId_Agencia(dataventa.getId_Agencia());
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}		   
			return retornofinal;		  
		}
				return null;			
	}

	private boolean VerificarDatosVentas(Venta venta) {
		return true;
	}

	public DataAnulado AnularVenta(double Id_venta, double id_Agencia) {
			return null;
	}
	
	private Venta DataVenta2Venta (DataVenta v){
		Venta a = new Venta();		
	    a.setFechaInicio(v.getFechaInicio());
     	a.setFechaVenta(v.getFechaVenta());
        a.setIdAgencia(v.getId_Agencia());
		a.setImporte(v.getImporte());
		a.setMatricula(v.getMatricula());
		a.setMinutos(a.getMinutos());
		return a;		
	}
	
	private DataVenta Venta2DataVenta (Venta v){
		DataVenta a = new DataVenta();
		a.setFechaInicio(v.getFechaInicio());
		a.setFechaVenta(v.getFechaVenta());
		a.setImporte(v.getImporte());
		a.setMatricula(v.getMatricula());
		a.setMinutos(a.getMinutos());
		return a;
	}
}
